Il server di interrupt Alla chiamata del server di interrupt vengono passati dal sistema una serie di importanti informazioni dal sistema in particolari registri (per questo si consiglia di scrivere il codice delle interrupt in assembler). I parametri dell'interrupt hardware diretta (che viene installata con SetIntServer) sono: D0 - scratch (viene utilizzato dal sistema quindi il suo valore verrà mutato) D1 - contiene i valori di INTENAR (il registro che indica quali interrupt sono abilitate) e INTREQR (il registro che indica quali interrupt si sono verificati) "and"ati fra loro, ed indica quali interrupt si sono verificate effettivamente. A0 - inidirizzo base del set di chip custom. A1 - valore presente nel campo di is_Data dell'interrupt (quindi il puntatore alle informazioni che l'installatore dell'interrupt vuole passare) A5 - è usato come un vettore al tuo codice di interrupt A6 - punta alla base della libreria exec; serve per la chiamata di funzioni exec Un codice di interrupt diretto deve ritornare con RTS (non con RTE come si dovrebbe fare per un installazione dell'interrupt diretto via hardware); prima di uscire bisogna cancellare il bit dell'interrupt relativo nel registro INTREQ per indicare che l'interrupt è stata servita. I parametri dell'interrupt hardware installata con AddIntVector: D0 - scratch D1 - scratch A0 - scratch (tranne alcuni casi) A1 - valore del campo is_Data nella struttura Interrupt A5 - puntatore al codice di interrupt (scratch) A6 - scratch in questo caso dato che l'interrupt non è direttamente connessa al sistema non vi è bisogno di resettare il bit nel registro INTREQ; vi è però la possibilità di saltare tutte le interrupt che vengono dopo nella lista dei servers ponendo il flag Z a 1 (cancellato); nel caso in cui vogliate far seguire l'esecuzione a tutte le interrupt della lista bisogna settare il flag Z (porre a 0); il modo migliore per pilotare il flag Z è questo: Setzflag_Chiamalaprossima: MOVEQ #0,D0 RTS Clearzflag_finiscilacatena: MOVEQ #1,D0 RTS I server di interrupt di questo tipo (installati con AddIntServer) possono essere attivati solo per le seguenti interrupt: PORTS, COPER, VERTB, EXTER e NMI.